package com.zxwl.obs.entity;

import org.springframework.stereotype.Component;

/**
 *	任务表（存放OBS任务）
 */
@Component
public class HuaweiTask
{
	private String sServiceid;	//任务标识符（主键）
	private String sDescription;
	private Integer deviceType;
	/**
	 * deviceType=1 (座席工号 （例如 “321”）)
	 * deviceType=2 (技能名称（例如“咨询”）)
	 * deviceType=3 (流程接入码 （例如“1001”）)
	 */
	private String sDeviceSign;	//根据deviceType的值，对应着不同的含义
	private Integer subccNo;	//呼叫中心 默认为1
	private Integer vdnId;		//虚拟呼叫中心ID 默认为1
	private String sCallerNo;	//外呼使用的主叫号码
	private String sBeginDate;	//任务开始日期 格式：yyyy-mm-dd
	private String sEndDate;	//任务结束日期 格式：yyyy-mm-dd
	private String sBeginTime1;	//平时呼出开始时间段 格式：hh:mm
	private String sEndTime1;	//平时呼出结束时间段 格式：hh:mm
	private String sBeginTime2;	//平时呼出开始时间段 格式：hh:mm
	private String sEndTime2;	//平时呼出结束时间段 格式：hh:mm
	private String sBeginTime3;	//平时呼出开始时间段 格式：hh:mm
	private String sEndTime3;	//平时呼出结束时间段 格式：hh:mm
	private String sHolidayBeginTime1;	//节假日呼出开始时间段 格式：hh:mm
	private String sHolidayEndTime1;	//节假日呼出结束时间段 格式：hh:mm
	private String sHolidayBeginTime2;	//节假日呼出开始时间段 格式：hh:mm
	private String sHolidayEndTime2;	//节假日呼出结束时间段 格式：hh:mm
	private String sHolidayBeginTime3;	//节假日呼出开始时间段 格式：hh:mm
	private String sHolidayEndTime3;	//节假日呼出结束时间段 格式：hh:mm
	private Integer holidayId;			//节假日ID，该字段用于获取当前是否为节假日，作为“取节假日信息接口”的输入参数。
	private Integer obsCallinterval;	//外呼任务的呼出时间间隔（单位秒），当为预测外呼时，不使用
	/**
	 *  外呼任务每次呼出的数量，当为预测外呼时，不使用。
	 *  该参数与usObsCallInterval一起使用，在设置外呼策略时，要合理设置该值：
	 * 	如某外呼策略需要达到1分钟呼出60个的需求，建议配置成usObsCallInterval=3,usObsCallCount=3;
	 * 	不建议配置成:usObsCallInterval=60,usObsCallCount=60
	 */
	private Integer obsCallCount;		//呼任务每次呼出的数量
	/**
	 	呼出方式（当设备类型为IVR时，预占用方式呼出，跟这个配置无关）
		预占用呼出
		预测呼出（只有设备类型为队列时，选择预测呼出才生效）
		预浏览呼出
	 */
	private Integer outBoundType;		//呼出方式
	private Integer maxAlertingTime;	//用户不应答最大振铃时长（单位秒），范围（5~120）
	/**
		 预测外呼的方法：
		1 经验预测法，需要人工调整预测因子
		2 座席利用率预测法
		3 接通率预测法
	 */
	private Integer predictMethod;
	/**
	 	预测外呼使用，预测外呼的预处理时间，任务刚启动时使用。单位为秒
		取值范围60~900，缺省为300。（该字段已无意义，建议填写缺省值300）
	 */
	private Integer forceCastTime;
	private Integer para1;		//如果PredictMethod=1,2,3 则该字段意思为“最大平均通话时长”
	private Integer para2;		//如果PredictMethod=1,2,3 则该字段意思为“最小平均通话时长”
	/**
		如果PredictMethod=1,2,3 则该字段意思为“平均工作态时长，即电话
		挂断后，话务员进行事后整理的平均时长。”，该字段对于OBS没有意义，不需要进行设置，设置一个默认值0就可以了。对于原来老的outboundplus程序，根据实际外呼业务进行设置。
	 */
	private Integer para3;
	/**
	 	如果PredictMethod=1
		则该字段意思为“预测因子，外部可以通过调整该值，调整预测算法的呼出速度，范围（0~150）”缺省为100
		如果suPredictMethod=2,3
		则该字段意思为“最低呼损率”，缺省为3，当配置为3，代表的含义是最低呼损率为3%。
		呼损率的含义：排队过程中挂机的呼叫数/用户的摘机的总呼叫数。采用方法2，3进行预测外呼时，呼损率不能超过该值。
	 */
	private Integer para4;
	/**
		如果PredictMethod=1
		则该字段不使用
		如果PredictMethod=2
		则该字段意思为“预测外呼目标值：座席利用率（0~100）”缺省为70
		如果PredictMethod=3
		则该字段意思为“预测外呼目标值，用户等待时间”单位为秒，范围0~16，
		缺省为5
	 */
	private Integer para5;
	
	/**
	 	如果PredictMethod=1
		则该字段不使用
		如果PredictMethod=2
		则该字段的意思为“座席利用率的计算方法 配置：1表示座席利用率＝总的通话时长/总答入时长 2 表示座席利用率＝（总的通话时长+工作态时长）/总的答入时长”
		如果PredictMethod=3
		则该字段意思为“预测外呼目标值，外呼接通率（0~100）”
		当PredictMethod=3时，该字段与usPara5配合一起使用，表示在某排队时间内得接通率，如usPara5=5,usPara6=96,则表示预测外呼达到的目标为：在允许5秒排队的情况下，达到96%的接通率。
	 */
	private Integer para6;
	
	
	
	
	//===============geter or seter  ==============================//
	public String getsServiceid()
	{
		return sServiceid;
	}
	public void setsServiceid(String sServiceid)
	{
		this.sServiceid = sServiceid;
	}
	public String getsDescription()
	{
		return sDescription;
	}
	public void setsDescription(String sDescription)
	{
		this.sDescription = sDescription;
	}
	public Integer getSubccNo()
	{
		return subccNo;
	}
	public void setSubccNo(Integer subccNo)
	{
		this.subccNo = subccNo;
	}
	public Integer getVdnId()
	{
		return vdnId;
	}
	public void setVdnId(Integer vdnId)
	{
		this.vdnId = vdnId;
	}
	public String getsCallerNo()
	{
		return sCallerNo;
	}
	public void setsCallerNo(String sCallerNo)
	{
		this.sCallerNo = sCallerNo;
	}
	public String getsBeginDate()
	{
		return sBeginDate;
	}
	public void setsBeginDate(String sBeginDate)
	{
		this.sBeginDate = sBeginDate;
	}
	public String getsEndDate()
	{
		return sEndDate;
	}
	public void setsEndDate(String sEndDate)
	{
		this.sEndDate = sEndDate;
	}
	public String getsBeginTime1()
	{
		return sBeginTime1;
	}
	public void setsBeginTime1(String sBeginTime1)
	{
		this.sBeginTime1 = sBeginTime1;
	}
	public String getsEndTime1()
	{
		return sEndTime1;
	}
	public void setsEndTime1(String sEndTime1)
	{
		this.sEndTime1 = sEndTime1;
	}
	public String getsBeginTime2()
	{
		return sBeginTime2;
	}
	public void setsBeginTime2(String sBeginTime2)
	{
		this.sBeginTime2 = sBeginTime2;
	}
	public String getsEndTime2()
	{
		return sEndTime2;
	}
	public void setsEndTime2(String sEndTime2)
	{
		this.sEndTime2 = sEndTime2;
	}
	public String getsBeginTime3()
	{
		return sBeginTime3;
	}
	public void setsBeginTime3(String sBeginTime3)
	{
		this.sBeginTime3 = sBeginTime3;
	}
	public String getsEndTime3()
	{
		return sEndTime3;
	}
	public void setsEndTime3(String sEndTime3)
	{
		this.sEndTime3 = sEndTime3;
	}
	public String getsHolidayBeginTime1()
	{
		return sHolidayBeginTime1;
	}
	public void setsHolidayBeginTime1(String sHolidayBeginTime1)
	{
		this.sHolidayBeginTime1 = sHolidayBeginTime1;
	}
	public String getsHolidayEndTime1()
	{
		return sHolidayEndTime1;
	}
	public void setsHolidayEndTime1(String sHolidayEndTime1)
	{
		this.sHolidayEndTime1 = sHolidayEndTime1;
	}
	public String getsHolidayBeginTime2()
	{
		return sHolidayBeginTime2;
	}
	public void setsHolidayBeginTime2(String sHolidayBeginTime2)
	{
		this.sHolidayBeginTime2 = sHolidayBeginTime2;
	}
	public String getsHolidayEndTime2()
	{
		return sHolidayEndTime2;
	}
	public void setsHolidayEndTime2(String sHolidayEndTime2)
	{
		this.sHolidayEndTime2 = sHolidayEndTime2;
	}
	public String getsHolidayBeginTime3()
	{
		return sHolidayBeginTime3;
	}
	public void setsHolidayBeginTime3(String sHolidayBeginTime3)
	{
		this.sHolidayBeginTime3 = sHolidayBeginTime3;
	}
	public String getsHolidayEndTime3()
	{
		return sHolidayEndTime3;
	}
	public void setsHolidayEndTime3(String sHolidayEndTime3)
	{
		this.sHolidayEndTime3 = sHolidayEndTime3;
	}
	public Integer getHolidayId()
	{
		return holidayId;
	}
	public void setHolidayId(Integer holidayId)
	{
		this.holidayId = holidayId;
	}
	public Integer getObsCallinterval()
	{
		return obsCallinterval;
	}
	public void setObsCallinterval(Integer obsCallinterval)
	{
		this.obsCallinterval = obsCallinterval;
	}
	public Integer getObsCallCount()
	{
		return obsCallCount;
	}
	public void setObsCallCount(Integer obsCallCount)
	{
		this.obsCallCount = obsCallCount;
	}
	public Integer getOutBoundType()
	{
		return outBoundType;
	}
	public void setOutBoundType(Integer outBoundType)
	{
		this.outBoundType = outBoundType;
	}
	public Integer getMaxAlertingTime()
	{
		return maxAlertingTime;
	}
	public void setMaxAlertingTime(Integer maxAlertingTime)
	{
		this.maxAlertingTime = maxAlertingTime;
	}
	public Integer getPredictMethod()
	{
		return predictMethod;
	}
	public void setPredictMethod(Integer predictMethod)
	{
		this.predictMethod = predictMethod;
	}
	public Integer getForceCastTime()
	{
		return forceCastTime;
	}
	public void setForceCastTime(Integer forceCastTime)
	{
		this.forceCastTime = forceCastTime;
	}
	public Integer getPara1()
	{
		return para1;
	}
	public void setPara1(Integer para1)
	{
		this.para1 = para1;
	}
	public Integer getPara2()
	{
		return para2;
	}
	public void setPara2(Integer para2)
	{
		this.para2 = para2;
	}
	public Integer getPara3()
	{
		return para3;
	}
	public void setPara3(Integer para3)
	{
		this.para3 = para3;
	}
	public Integer getPara4()
	{
		return para4;
	}
	public void setPara4(Integer para4)
	{
		this.para4 = para4;
	}
	public Integer getPara5()
	{
		return para5;
	}
	public void setPara5(Integer para5)
	{
		this.para5 = para5;
	}
	public Integer getPara6()
	{
		return para6;
	}
	public void setPara6(Integer para6)
	{
		this.para6 = para6;
	}
	public String getsDeviceSign()
	{
		return sDeviceSign;
	}
	public void setsDeviceSign(String sDeviceSign)
	{
		this.sDeviceSign = sDeviceSign;
	}
	public Integer getDeviceType()
	{
		return deviceType;
	}
	public void setDeviceType(Integer deviceType)
	{
		this.deviceType = deviceType;
	}
}
